home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
A-COMAL Series
/
(k)aab.d64
/
proc.real'fft
< prev
next >
Wrap
Text File
|
2007-02-28
|
1KB
|
27 lines
0010 // DELETE "LST.REAL'FFT"
0020 // LIST TO "LST.REAL'FFT"
0030 //
0040 ╨╥╧├ REAL'FFT(╥┼╞ X(),LOG'2'N#) ├╠╧╙┼─
0050 // TRANSFORMS A REAL FUNCTION USING A COMPLEX ╞╞╘
0060 // SEE ┬RIGHAM, ╘HE ╞AST ╞OURIER ╘RANSFORM, ╞IGURE 10-10, P. 169.
0070 // ON INPUT, X(0:2*N#-1) CONTAINS THE REAL FUNCTION
0080 // ON OUTPUT, THE CORRESPONDING COMPLEX TRANSFORM IS IN
0090 // X(0:N#-1)+I*X(N#:2*N#-1), WHERE
0100 N#:=2^LOG'2'N#
0110 ─╔═ Y'R(0:N#-1), Y'I(0:N#-1)
0120 ╞╧╥ K#:=0 ╘╧ N#-1 ─╧
0130 Y'R(K#):=X(2*K#); Y'I(K#):=X(2*K#+1)
0140 ┼╬─╞╧╥ K#
0150 FFT(Y'R(),Y'I(),LOG'2'N#)
0160 ╞╧╥ K#:=0 ╘╧ N#-1 ─╧
0170 // THE REAL PART:
0180 X(K#):=(Y'R(K#)+Y'R(N#-K#))/2
0190 X(K#):+├╧╙(╨╔*K#*(Y'I(K#)+Y'I(N#-K#))/(2*N#))
0200 X(K#):-╙╔╬(╨╔*K#*(Y'R(K#)-Y'R(N#-K#))/(2*N#))
0210 // THE IMAGINARY PART:
0220 X(K#+N#-1):=(Y'I(K#)-Y'I(N#-K#))/2
0230 X(K#+N#-1):-╙╔╬(╨╔*K#*(Y'I(K#)+Y'I(N#-K#))/(2*N#))
0240 X(K#+N#-1):-├╧╙(╨╔*K#*(Y'R(K#)-Y'R(N#-K#))/(2*N#))
0250 ┼╬─╞╧╥ K#
0260 ┼╬─╨╥╧├ REAL'FFT